package com.example.frameboot.common;

import lombok.AllArgsConstructor;


import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

/**
 * 状态码，说明：
 * 1、200成功，500服务器忙；
 * 2、1000内的状态码，预留，统一处理公共的异常，如用户未登陆、token错误、没有权限、记录不存在，参数错误等，不要随便使用；
 * 3、业务异常码由5位数构成
 * a、前两位标识业务模块编码，都在这统一注册，方便大家查看，避免重复，每个模块用region-endregion折叠起来
 * 10 -> 组织单元
 * 11 -> 组织单元新增
 * 12 -> 组织单元撤销
 * 13 -> 组织单元调整
 * 14 -> 全部组织单元管理
 * <p>
 * 20 -> 申请单
 * <p>
 * 30 -> 职员
 * 31 -> 入职
 * 32 -> 转正
 * 33 -> 异动
 * 34 -> 离职
 * 35 -> 兼职
 * 36 -> 结束兼职
 * 37 -> 群调
 * 38 -> 小微企业解除
 * 39 -> 合同主体变更
 * 40 -> 全部人事事务
 * <p>
 * 50 -> 职位
 * <p>
 * <p>
 * b、后三位标识具体错误，如001，组织名称不能为空
 * 如：11001，表示组织单元新增申请模块部门名称不能为空
 */
@Getter
@AllArgsConstructor
public enum HttpStatusEnum {
    //region 通用编码，不要轻易动
    /**
     * 成功
     */
    SUCCESS(200, "成功"),

    /**
     * 记录不存在
     */
    RECORD_UNEXIST(400, "记录不存在，找不到对应的流程实例！"),

    CURRENT_RECORD_UNEXIST(401, "当前记录不存在"),

    CURRENT_RECORD_ALREADY_EXIST(402, "当前记录已存在"),


    /**
     * 参数错误
     */
    PARAMS_ERROR(403, "参数错误 "),

    /**
     * 申请单回滚参数错误
     */
    PARAMS_ROLLBACK_ERROR(201, "申请单回滚参数错误"),

    /**
     * 发生异常
     */
    EXCEPTION(500, "服务器忙，请稍后再试"),

    /**
     * 发生异常
     */
    OPERATIONEXCEPTION(501, "操作报错"),

    /**
     * token过期
     */
    TOKEN_EXPIRED(801, "token过期"),

    /**
     * token无效
     */
    TOKEN_INVALID(802, "token无效"),

    /**
     * 没有权限
     */
    ACCESS_DENIED(806, "没有权限 "),

    /**
     * 没有权限
     */
    AUTO_FAIL(807, "自动注入Application失败"),


    /**
     * 账号不存在
     */
    DOMAINACCOUNT_UNEXIST(900, "账号不存在"),

    /**
     * 账号密码错误
     */
    USERNAME_PASSWORD_ERROR(901, "账号密码错误"),

    /**
     * 业务处理器索引不能重复
     */
    EMPLOYEE_BILL_INDEX_EXIST_ERROR(902, "业务处理器索引不能重复"),

    /**
     * 业务类型不存在
     */
    EMPLOYEE_BILL_INDEX_ERROR(903, "业务类型不存在！"),


    /**
     * 账号密码不能为空
     */
    USERNAME_PASSWORD_EMPTY_ERROR(904, "账号密码不能为空"),


    /**
     * 城市不存在
     */
    TENANT_UNEXIST(905, "该城市尚未开发！"),
    /**
     * 18位身份证不正确
     */
    IDCARD18_ERROR(30003, "18位身份证不正确"),
    ID_CARD_NOT_EMPTY(21013, "身份证不能为空！"),

    /**
     *
     */
    USERNAME_PASSWORD_MAX_ERROR_COUNT(906, "账号密码错误次数超过10次，用户被锁定!")
    //endregion

    //region 10组织单元


    //endregion
    ;

    @Setter
    private int code;

    @Setter
    private String message;
}

